home *** CD-ROM | disk | FTP | other *** search
-
-
- Dokumentation zu Most V1.31
-
-
- Datum: 11. November 1992
- Autor: Uwe Röhm
-
-
-
- Most ist ein Textanzeiger ähnlich Less, More oder MuchMore.
- Most bietet
- - beliebig viele Textfenster
- - verteiltes Prozeßsystem
- - Suchfunktion
- - frei konfigurierbar
- - Kopiermöglichkeit ins ClipBoard
- - Anspringen von Include-Dateien
- - Fontsensitive Oberfläche
- - PubScreen, eigenen Screen oder Workbench
- - AppWindow, AppIcon
- - ARexx Port
- - Sprachanpassung per locale.library
- - XPK Support
- - Verwendung mit Pipes
- - benötig Kickstart 2.0!!!
-
-
-
-
-
-
- Inhaltsverzeichnis
- ====================
-
- 1. Copyright
- 2. Prinzip
- 3. Konfiguration
- 4. Tastatur-Belegung
- 5. Menus
- 6. Das Textfenster
- 7. Der Suchrequester
- 8. Das AppIcon
- 9. XPK Support
- 10. Pipe Support
- 11. Der ARexx Port
- 12. Anregungen, Kritiken, Ideen
- 13. aktuelle Versionen
- 14. Danksagungen
-
-
-
-
-
- 1. Copyright
- ===========
-
- Am Anfang standen Schweiss und Mühe. Also sprach der Programmierer:
- Es werde Giftware! Und so war es.
-
- Most 1.31 ist Giftware und darf frei kopiert und benutzt werden. Ich
- würde mich aber über Geschenke jeglicher Art von den Benutzern, die Most
- regelmäßig verwenden, SEHR freuen.
-
- Davon abgesehen behalte ich mir mein Copyright aber vor, also:
- Copyright (c) 1992 Uwe Röhm
-
- Ich verbiete ausdrücklich, daß Most kommerziellen Produkten ohne meine
- Zustimmung beigelegt wird. Insbesondere darf Most NICHT für militärische
- Zwecke im weitesten Sinne verwendet werden. Im weitesten Sinne heißt, daß
- ich auch den Verwaltungen und sonstigen Büros solcher Firmen die Verwendung
- untersage, die militärische Produkte auch nur planen oder unterstützen
- (Hersteller sowieso).
-
- Most darf in PD Sammlungen aufgenommen werden, solange jene nicht mehr
- als umgerechnet 10 DM kosten. Das ist das absolute Maximum! Ich verlange
- aber, daß Most immer vollständig, also insbesondere immer zusammen mit
- der Dokumentation verbreitet wird. Das gilt auch für jeden normalen
- Benutzer! Leute, denkt an die Doku - ohne die ist ein Programm nur die
- Hälfte wert!
-
-
-
-
- 2. Prinzip
- =========
-
- Ich habe Most geschrieben, da ich eine Textanzeiger haben wollte, der
- auf der Workbench aufgeht und sowohl über die Tastatur als auch die Maus
- vollständig zu bedienen ist. Außerdem sollte er möglichst flexibel sein
- und insbesondere auch mit wenig Speicher auskommen.
-
- Deshalb arbeitet Most IMMER mit einem Fenster, in dem der Text angezeigt
- wird. Wer will, kann jenes aber auch auf anderen Screens öffnen lassen.
- Most kann sogar einen eigenen Screen öffnen. Wieviele Fenster Most aufhat,
- wo jene liegen (welcher PubScreen) und welche Texte darin zu sehen sind
- hängt nur vom Speicher und dem Benutzer ab :-)
-
- Jeder Text hat nicht nur sein eigenes Fenster, sondern dahinter steht auch
- ein eigener Prozeß. Damit sind die Textfenster voneinander völlig autonom.
- Insbesondere können ARexx Befehle an verschiedenen Texte gleichzeitig
- gesendet werden und es ist immer möglich, neue Fenster zu öffnen, auch wenn
- die bereits geöffneten gerade "beschäftigt" sind. Dazu gibt es einen Most
- Hauptprozess, der die Texte verwaltet und einige globale ARexx Befehle
- behandelt.
-
- Um den Speicherverbrauch unter Kontrolle zu haben, arbeitet Most immer
- mit einem Puffer. Kleinere Texte, die vollständig in den Puffer passen,
- werden in einem Aufwasch eingelesen. Als Nebeneffekt wird die Textdatei
- nun nicht mehr benötigt und kann z.B. sofort weiter verändert werden.
- Zu große Texte werden pufferweise gelesen. Das spart Speicherplatz (man
- wähle kleine Puffergrößen), bringt aber weniger Komfort (sprich Zeiteinbuße)
- beim Scrollen und Suchen. Außerdem blockiert Most nun den Text, so daß er
- nicht verändert werden kann, solange Most in anzeigt.
-
- Dieses "Pageing" großer Dateien ist sehr nützlich, wenn man wenig Speicher
- oder übergroße Dateien hat. Wer es nicht haben will braucht nur die Puffer-
- größe sehr sehr groß machen (sagen wir mal 4 MB), womit wohl alle normalen
- Textdateien auf einen Schwung einlesbar sind. Keine Angst, Most verwendet dann
- natürlich nur soviel Speicher, wie die Datei groß ist :-))
-
- Eine Ausnahme des Pagings sind XPK-gepackte Dateien, die der Einfachheit
- halber immer vollständig eingelesen werden. Für sie gibt es also KEIN
- Paging!
-
- Natürlich kann Most Texte mit allen ANSI-Steuersequenzen anzeigen. Dafür
- habe ich das Rad nicht noch einmal erfunden, sondern auf Bewährtes zurückge-
- griffen: Das console.device. Als Nebeneffekt kann man Textstellen markieren
- und in das Clipboard kopieren - wenn die Option FASTSCROLL nicht angegeben
- wurde! Leider hat dies auch drei Nachteile:
- - Man kann nur innerhalb der sichtbaren Seite markieren
- - Das Scrollen ist auf normalen Amigas ohne 680x0 (x >=2) relativ langsam ;-)
- - Binäre Dateien sollte man NICHT einladen. Das gibt Chaos....
-
-
-
-
- 3. Konfiguration
- ===============
-
- Most konfiguriert sich in der Reihenfolge
- 1.) Interne Defaultwerte
- 2.) Environmentvariablen "Most/Most" und "Most/FileReq"
- (Bei Shellstart werden lokale Variable zuerst eingelesen)
- 3.) Bei Shell-Start: Shellparameter auswerten
- Bei WB-Start : Icon-Tooltypes auswerten
-
- Folgende Optionen sind jeweils in 2.) und 3.) erlaubt:
- FILES Eine Liste von anzuzeigenden Dateien (nur bei Shellstart)
- Es können die bekannten AmigaDOS Wildcards verwendet werden.
- PUBSCREEN Der Name eines PubScreens, auf dem Most sein Fenster öffnet
- PORTNAME Name des globale ARexx Ports von Most, Default: MostPort
- STARTUP Arexx Skript das beim Starten von Most ausgeführt wird
- (Achtung: Dieses Skript wird auch beim Öffnen jedes weiteren
- Textfensters ausgeführt!!)
- WX=WINDOWX Die X-Koordinate der Most-Fenster
- WY=WINDOWY Die Y-Koordinate der Most-Fenster. -1 für Fenster zentriert.
- WW=WINDOWW Die Breite der Fenster (Default: 600)
- WH=WINDOWH Die Fensterhöhe (Default: 400)
- SM=SCREENMODE Ein Name eines Schirmmodus, der dem Betriebssystem bekannt ist
- (Most verwendet keine fest einprogrammierte Namensliste).
- Eine Liste dieser Namen sieht man z.B. im Fenster des
- Prefs/ScreenMode Programms. Wird ein gültiger Modus angegeben,
- so öffnet Most einen eigenen Pubscreen (Name: Most), auf dem
- seine Fenster liegen.
- ACHTUNG: Je nach Version der Monitor-Files ändern sich even-
- tuell die Namen der Schirmmodi.
- FONT Der Name des gewünschten Zeichensatzes für den Text inklusive
- der Endung ".font". Achtung mit Proportionalfonts!
- FONTHEIGHT Eine besondere Zeichensatzhöhe. Wird sie nicht explizit ange-
- geben, so wird die Höhe des System-Defaultfonts kopiert.
- APPICON Ein Schalter, der das AppIcon von Most erscheinen läst (mehr
- dazu siehe unten). Wird diese Option ohne weitere Dateinamen
- angegeben, so startet Most im Hintergrund nur mit dem AppIcon.
- ICONX Die X-Koordinate des AppIcons auf der Workbench
- ICONY Dasselbe für die Y-Koordinate.
- FASTSCROLL Ein Schalter, ob die Textausgabe ohne die Möglichkeit des Aus-
- schneidens und damit schneller erfolgen soll.
- WORDWRAP Schalter, ob lange Zeilen umgebrochen werden sollen.Per Default
- werden zu lange Zeilen am Fensterende abgeschnitten.
- Achtung: Wird WordWrap angeschaltet, so scrollt Most bei zu
- langen Zeilen unkontrolliert...
- BUFLEN Hiermit läßt sich die maximale Länge des Lesepuffers angeben.
- Für kleiner Dateien wird nur ein Puffer von der Länge der Datei
- allokiert. Dadurch kann mit sehr großen Puffergrößen er-
- zwungen werden, alle Dateien vollständig einzuladen.
- Defaultwert: 50 000 Bytes
- QUOTES Hiermit wird eine Folge von Trennzeichen definiert. Der Sinn
- dahinter ist die Möglichkeit, mit Doppelklick auf ein Wort,
- das ZWISCHEN den hiermit angegebenen Trennern steht, einen Text
- mit dem entsprechenden Namen zu laden. Das ist besonders für
- Programmierer gedacht, die somit leicht die Inklude-Dateien in
- ihren Sourcen anspringen können.
- Default: "'<>(){}[]
- DIRS Zum Angeben von mehreren Pfaden, in denen der Reihe nach die
- einzuladenden Dateien (siehe QUOTES) gesucht werden. Die
- einzelnen Pfade werden durch das Zeichen | trennt.
- Beispiel: DIRS "Include:|TexInputs:|LC:Include/"
- ENDS Endungen, die automatisch an Inklude-Dateien angehängt werden,
- (der Reihe nach).
- Beispiel: ENDS ".c.h.tex"
-
-
-
-
- 4. Tastatur-Belegung
- ===================
-
- Grundsätzlich werden alle von More her bekannten Tastenkommandos unterstützt.
-
- * Scrollen
- CURSOR DOWN
- ZIFFERBLOCK 2
- RETURN
- ENTER
- eine Zeile tiefer
-
- CURSOR UP
- ZIFFERBLOCK 8
- DELETE
- eine Zeile hoch
-
- SHIFT CURSOR DOWN
- SPACE
- PAGE DOWN
- eine Seite weiterscrollen
-
- SHIFT CURSOR UP
- BACKSPACE
- "b"
- PAGE UP
- Eine Seite zurück springen
-
- HOME
- "<"
- Zum Textanfang springen
-
- END
- ">"
- Zum Textende springen
-
- * Suchen
- "n"
- Bisherigen Suchbegriff weiter suchen (vorwärts)
-
- "."
- Suchen ohne auf Groß/Kleinschrift zu achten
-
- "/"
- Suchen mit Unterscheidung nach Groß/Kleinschrift
-
- "f"
- "s"
- Suchfenster öffnen, bzw. bei geöffnetem Fenster den Begriff suchen
-
- * neuen Text laden
- "l"
-
- * Information
- HELP
- "h"
-
- * Editor starten
- "e"
-
- * Text schließen
- ESCAPE
- "q"
-
-
-
- 5. Menus
- =======
- Projekt
- Neu...
- öffnet ein neues Fenster und fragt per Filerequester nach einer neuen
- Datei. Wenn der Filerequester abgebrochen wird, so wird das Fenster
- wieder geschloßen.
- öffnen...
- Per Filerequester den Namen einer neuen Textdatei auswählen und in
- das aktuelle Fenster laden. Die Ausmaße, Koordinaten und das Pattern
- des Filerequesters können mit "Settings sichern" (s.u.) abgespeichert
- werden.
- edieren...
- Startet den Editor mit dem aktuellen Text per RUN. Der Name des Editors
- muß in der Environment Variable EDITOR stehen.
- Info...
- Öffnet einen Informationsrequester, in dem neben dem üblichen CopyRight
- einige wichtige Informationen zum aktuellen Text stehen:
- Name, Dateilänge, Zeilenzahl, sichtbare Zeilennummern, XPK-Packername
- und entweder die Meldung, daß der Text komplett eingelesen wurde, oder
- die Größe des benutzten Puffers.
- Ende
- Beendet den aktuellen Text und - falls es der letzte Text ist - auch
- ganz Most.
-
- Bewegen
- verschiedene Menupunkte zum zeilen-/seitenweisen Springen im Text, bzw. um
- gezielt die letzte/erste Seite anzuspringen.
-
- Suchen
- suchen...
- Öffnet den Suchrequester und aktiviert dessen Stringgadget. Bei bereits
- offenem Requester ist dieser Menupunkt inaktiviert. Näheres zum Such-
- requester weiter unten.
- vorwärts
- rückwärts
- Suchen des eingegebenen Suchtextes in die jeweilige Richtung.
- Beide Punkte sind nur bei offenem Suchrequester verfügbar.
-
- Extras
- Bild neu aufbauen
- Initialisiert die Console neu und baut die aktuelle Seite noch einmal
- vollständig auf.
- Skript starten...
- Öffnet einen Filerequester, mit dem ein ARexx Makro ausgewählt werden
- kann, das anschließend ausgeführt wird.
-
- Settings
- sichern
- global
- Speichern der momentanen Einstellungen in Env: und EnvArc: in ein
- Unterverzeichnis Most (das automatisch erzeugt wird). Es werden
- alle von der Kommandozeile bekannten Optionen gespeichert.
- Zusätzlich werden in einer extra Variablen die Maße, die Position
- und das Pattern des Filerequesters abgespeichert.
-
- lokal
- Speichern der Einstellungen in zwei lokale Shell Variablen namens
- Most/Most und Most/FileReq (sorry wegen den Namen...). Diese
- Option funktioniert natürlich nur, wenn Most von einer Shell aus
- gestartet worden ist!
-
-
-
- 6. Das Textfenster
- =================
- * Gadgets
- Neben den bekannten Systemgadgets zum Schließen, Zoomen, Verkleinern usw.
- gibt es drei weitere Gadgets am rechten Fensterrand, mit denen im Text
- gescrollt werden kann.
- Der Scrollbalken kann sowohl frei bewegt, als auch durch hineinklicken
- seitenweise genutzt werden. Die Bodyposition gibt die Position im Text,
- seine Größe das Verhältnis der sichtbaren Seite zum ganzen Text an.
- Die beiden Pfeilgadgets darunter dienen zum zeilenweisen Auf- und
- Abscrollen.
- * Maus
- Wir mit der Maus in das Fenster doppelt geklickt, so wird an der ent-
- sprechenden Stelle nach einem Dateinamen zwischen den konfigurierten
- Trennzeichen gesucht. Ist dort eine solche Textstelle vorhanden
- (z.B. in C-Sourcen ein "#include <exec/exec.h>" mit dem Dateinamen
- exec/exec.h zwischen "<" und ">"), dann wird jener in allen konfigurierten
- Verzeichnissen gesucht und sofern gefunden in einem eigenen Fenster
- angezeigt.
- Ist Most nicht im FASTSCROLL-Modus, so kann aus den Fenstern durch
- das einfache Anklicken des Textes und dem anschließenden Bewegen der Maus
- (OHNE den linken Knopf loszulassen!) ein Textbereich im Fenster
- markiert werden. Der markierte Textbereich kann dann mit AMIGA-C
- kopiert werden.
- * AppWindow
- Jedes Most-Textfenster ist ein sogenanntes AppWindow, in das jederzeit eines
- oder auch mehrere Icons gezogen werden können. Die erste Datei wird dann in
- das aktuelle Fenster eingeladen und für alle weiteren Dateien werden eigene
- Fenster geöffnet.
-
-
-
- 7. Der Suchrequester
- ===================
- Im Suchrequester kann ein Suchstring eingegeben, sowie die drei Suchoptionen
- eingestellt werden. Dies geht sowohl mit der Maus als auch per Tastatur. Die
- entsprechenden Buchstabenabkürzungen sind in den Gadgettexten unterstrichen.
- Außerdem hat man im Suchrequester die gleiche Funktionalität wie im zuge-
- hörigen Textfenster:
- - Es sind dieselben Menus und deren Shortcuts vorhanden. Lediglich der
- Menupunkt "Suchen" ist disabled und dafür die Punkte vorwärts/rückwärts
- suchen zugelassen.
- - Neben den speziellen Tastenbefehlen für die Gadgets des Requesters werden
- ALLE Tasten des Textfensters weiterhin unterstützt. Insbesondere kann man
- also bei aktiviertem Suchrequester mit den Cursortasten im Textfenster
- scrollen!!! (Achtung: Das geht nur bei inaktivem Stringgadget)
-
-
-
- 8. Das AppIcon
- =============
- Das AppIcon erlaubt zwei Funktionen:
- - Doppelklick
- Ein Dateirequester erscheint, in dem eine Datei ausgewählt werden kann.
- Ist nur noch das AppIcon von Most aktiv (d.h. keine Fenster offen) und
- wird nun der Requester mit CANCEL verlassen, so wird Most beendet (vorher
- kommt natürlich noch eine Sicherheitsabfrage)!
- - Icons
- Werden Icondateien auf das Most AppIcon gezogen, so werden jene angezeigt.
-
- Bemerkungen:
- Most verwendet immer das eigene Programmicon als AppIcon! Ein eingebautes
- Bild bzw. ein explizit angegebenes werden nicht angeboten/unterstützt.
- Die Koordinaten des AppIcons werden bei "Save Settings" mit abgespeichert.
- Mit den Optionen ICONX und ICONY können explizite AppIconkoordinaten
- angegeben werden.
-
-
-
- 9. XPK Support
- =============
- Die Schnittstelle zum XPK Standard ist absolut transparent, um nicht zu
- sagen, unsichtbar gehalten. Ist eine Datei mit einem XPK Packer gepackt
- und ist das XPK Packet korrekt installiert, so entpackt Most die Datei
- automatisch und zeigt sie dann an. Im Informations-Requester erscheint
- nun hinter "XPK-Packer:" nicht mehr wie üblich "---", sondern der Name
- des verwendeten Packers.
- Einzige Besonderheit:
- Die Datei wird vollständig eingeladen, ein "Paging" findet nicht statt!
-
- Most kann ohne Probleme auch ohne XPK verwendet werden. Die xpkmaster.library
- ist also nicht nötig, um mit Most Texte anzuzeigen. Ohne sie werden XPK
- gepackte Texte dann natürlich auch nicht entpackt...
-
-
-
-
- 10. Pipe Support
- ==============
-
- Neuerdings unterstützt Most auch Pipes. Diese Option ist aber noch so frisch
- und neu, daß sie noch nicht ausgiebig getestet ist. Bitte alle Bugs mir melden.
-
- Wurde Most z.B. mit "type xyz | Most" gestartet, dann öffnet es ein Textfenster
- Namens "<Pipe Inhalt>" und zeigt den Inhalt der Pipe an. Ist jener kleiner als
- die konfigurierte Puffergröße, dann kann ganz normal darin gescrollt werden
- (edieren funktioniert aber nicht!). Ist der Puffer zu klein und scrollt man
- über den Puffer hinaus, so wird zwar weitergelesen, ein zurück zum Dateinanfang
- gibt es jetzt aber nicht mehr. Wie üblich kann man Most natürlich einen
- größeren Puffer mitgeben...
-
- Kleine Einschränkungen: Der Puffer wird IMMER in voller Größe angelegt (wie
- soll man einer Pipe entlocken, wieviel sie enthält/enthalten wird?). Und XPK
- aus einer Pipe ist (noch) nicht implementiert.
-
-
-
-
- 11. Der ARexx Port
- ================
-
- Neben dem globalen ARexx-Port "MostPort" (bzw. der durch die Option PORTNAME
- angegebene Name) des Hauptprozesses von Most besitzt jedes Textfenster seinen
- eigenen ARexx Port. Um einen spezielles Textfenster anzusprechen, sendet man
- an den globalen ARExx Port zuerst den Befehl "GetFileList", der eine Liste aller
- geöffneten Texte und deren Portnamen zurückgibt. Anhand jener Liste kann dann
- das gewünschte Fenster direkt addressiert werden.
- Während man an die Ports der einzelnen Fenster ALLE Arexx-Befehle senden kann,
- "versteht" der Hauptport nur die ersten 6 Befehle "GetFileList", "GetScreenName",
- "Quit", "OpenNew", "Set" und "Request". Werden andere Befehle dorthin gesendet,
- so meldet dies Most mit einem Fehlercode von 20.
-
- Folgende ARexx Befehle werden unterstützt:
-
- GetFileList In RESULT wird eine Liste aller vorhandenen Textfenster und ihrer
- Portnamen zurückgegeben. RESULT hat den Aufbau:
- {<Fenstername> <Portname> }^+
- (d.h. mindestens einmal aber beliebig viele)
- GetScreenName Liefert den Namen des PublicScreens des aktuellen Textes in RESULT
- Quit Beendet Most und schließt ALLE Fenster
- Auch ein ev. AppIcon wird gelöscht.
- Request Eine einfache Möglichkeit einer Benutzerabfrage per Systemrequester:
- Als Argumente müßen mit angegeben werden
- REQUEST <Titel> <Gadgets> <Text>
- Set Setzen von Most-Parametern wie
- CASE casesensitives Suchen AN/AUS
- WORD wortweises Suchen AN/AUS
- BACK Rückwärtssuchen AN/AUS
- NOCH NICHT IMPLEMENTIERT!!!
- OpenNew Wie Open, nur wird der Text in ein eigene Fenster geladen, auf das sich
- fortan alle Rexx-Befehle beziehen. Es braucht vorher kein aktuelles Fenster
- gewählt worden sein.
- Open In das aktuelle Fenster eine neue Datei einladen. Die Angabe eines Datei-
- namens ist optional. Wird er weggelassen, so wird ein FileRequester geöffnet.
- Close Schließt das aktuelle Fenster.
- ToFront Holt das aktuelle Fenster nach vorne
- GetWindowDims Liefert die Ausmaße des akt. Fensters in RESULT
- Edit Den Text im akt. Fenster editieren (Editor starten).
- Info Öffnet das Informationsfenster zum aktuellen Text.
- FirstPage Die erste Seite des Textes anzeigen
- LastPage Die letzte Seite des Textes anzeigen
- NextPage Nächste Seite des akt. Textes
- PrevPage wie oben, nur vorherige Seite
- NextLine Eine Zeile weiterscrollen
- PrevLine Eine Zeile zurückscrollen
- GotoLine Als Argument eine Zeile angeben, die als Seitenbeginn genommen wird.
- Search Ohne Argument: Suchrequester öffnen, bzw. bereits eingegebenen
- Text weitersuchen
- Mit Suchbegriff: Als neuen Suchbegriff einsetzen und suchen.
-
-
-
-
- 12. Anregungen, Kritiken, Ideen
- =============================
-
- Most ist noch längst nicht fertig. Es gibt eine Menge Ecken und Kanten,
- die ich noch abschleifen will. So ist der ARexx Port noch unvollständig
- und die Einstellungen will ich noch teilweise mit Requestern versehen
- (z.B. für den Font). Außerdem weicht Most (also ich) in einigen Stellen
- von den Richtlinien des Style Guides ab:
- - Keine Paste Option obwohl Copy möglich ist
- - Menustruktur
- - Speicherung der Einstellungen als pseudo Kommandozeile
-
- Ich bin sehr an Anregungen und auch jeglicher Kritik und Bugreports
- interessiert! Schreibt mir, ruft mich an oder kommt vorbei, nur teilt
- es mit mit :-)
-
-
- Meine Adresse:
- Uwe Röhm
- Wörthstr. 18
- W-8390 Passau
-
- EMail:
- roehm@kirk.fmi.uni-passau.de
-
- Fido:
- 2:246/200.5
-
-
-
-
-
- 13. aktuelle Versionen
- ====================
-
- Die aktuellste Most Version ist immer per ftp auf forwiss.uni-passau.de
- (132.231.1.10) in pub/amiga/local/UweR zu beziehen. Tip: In dem Verzeichnis
- pub/amiga/local liegen noch ganz andere interessante Programme :-)
-
-
-
-
- 14. Danksagungen
- ==============
-
- Besonderen Dank an meine Betatester
- David, Uli, Karl, Holger, Stefan und Stefan ;-)
- Außerdem ein Dankeschön an Urban für seine Mühe und XPK.
-